package com.fy.fyspace.common.limiter;

import java.util.concurrent.TimeUnit;

/**
 * 限流器接口
 */
public interface RateLimiter {
    /**
     * 尝试获取指定数量的令牌
     * @param tokens 需要的令牌数量
     * @return 是否获取成功
     */
    boolean tryAcquire(int tokens);

    /**
     * 在指定时间内尝试获取令牌
     * @param tokens 需要的令牌数量
     * @param timeout 超时时间
     * @param unit 时间单位
     * @return 是否获取成功
     */
    boolean tryAcquire(int tokens, long timeout, TimeUnit unit);
} 